The present invention relates to a novel microprocessor structure and more particularly to a microprocessor for executing calculation algorithms of a public code encoding system.
Prior to developing the structure of the microprocessor according to the invention, reference is briefly made to the three main microprocessor groups which are commercially available:
1. Bit slice microprocessors, which are essentially constituted by microprogrammable procesisng uhits, which are juxtaposed so as to obtain a given word length. PA0 2. General purpose microprocessors, which are essentially constituted by a programmable processing unit, which directly interfaces with the external medium by means of three buses, namely an address bus, a data bus and a control bus. These external buses are used for connecting the memory and input/output means. Their construction requires at least two one chip structures, one ensuring the calculation function and the other the storage function, said structures being interconnected by external connections. PA0 3. One chip microprocessors, which are true microcomputers formed on the same silicon substrate. Thus, on a single chip, they comprise at least one processing unit, a memory and an input/output device.
The memories associated with or integrated with these microprocessors are essentially of the RAM and/or ROM and/or PROM and/or EPROM and/or EEPROM types. For a given application, the choice of a microprocessor also involves the choice of the type of memory to be integrated or associated with the microprocessor.
Thus, in numerous applications, it is important to be able to retain the information recorded on energizing the memory. Naturally, this leads to the use of ROM memories, in which writing and erasure are impossible. However, by the very nature of the memory, information relative to a programme or data written into such a memory cannot be modified.
In order to obviate this disadvantage, it is merely necessary to use a non-volatile memory of the PROM type, into which writing takes place and whose content can be modified, or a reprogrammable memory of the EPROM or EEPROM type, whose content can not only be modified, but can also be erased, either by the action of ultraviolet rays (EPROM) or electrically (EEPROM).
It is also obvious that the use of a programmable PROM, EPROM or EEPROM-type memory makes it possible to increase the possibilities of a microprocessor, particularly if the complete sense is given to the programmable word. Thus, this type of memory has normally led to programmable microprocessors.
To place a microprocessor in the programming mode, means that the internal structure of the processing unit will be modified in such a way that the access, address and data buses are available from the outside via specialized connections. It is important to note that it is necessary to stop the microprocessor to permit programming of its memory. This programming means writing an instruction or data into the memory and all the operations necessary for the latter take place under the initiative and exclusive control of the external medium.
This was followed by a more developed type of programming, namely auto-programming, which represents the possibility given to the microprocessor of being able to itself write or modify the content of its own memory, without interrupting the performance of a programme and without any intervention from the external medium.
However, a conventional microprocessor is not auto-programmable. Thus, the control counter ensuring the addressing of the memory cannot both point to a first address of the memory, whose content is to be modified and point to a second address of the same memory to start up a writing sequence in the memory zone located at the first address. A programmable microprocessor is described in French Pat. No. 2,461,301.
Another important component of a microprocessor is its processing unit, which generally comprises an arithmetic and logic unit, a temporary register and an accumulator. All these components make it possible to carry out conventional logic operations. In certain cases, the processing unit also comprises multiplying circuits, which are generally in wired or microprogramme form and outside the processing unit of the microprocessor.
There are numerous applications based on the use of microprocessors and the choice of a microprocessor involves the examination of the aforementioned characteristics, as a function of the specific nature of the envisaged applications. Of all the possible applications, those which are retained hereinafter are the applications involving confidential and/or secret information, which it is necessary to protect in all security.
These informations, which are processed locally or remotely transmitted, must be stored in a protected area of the memory, which is generally of the PROM, EPROM or EEPROM type. In order to protect the same, it is necessary to prevent their reading and/or modification from the outside by unauthorized persons. These interdictions are managed by a programme recorded in the microprocessor memory and are represented by devices which, under the control of the programme, the microprocessor is able to keep locked or is able to temporarily unlock to prevent or allow access to a protected area of the memory as a function of the data supplied to the microprocessor inputs.
If for an application of this type, use is made of a general purpose microprocessor (physically separate processing unit and memory), it is not possible to ensure complete security for the confidential and/or secret information recorded in a protected area of the memory. Thus, although the informations are effectively protected during the performance of the programme, they become accessible when the microprocessor is not operating. As the memory is physically separate from the microprocessor, it is possible to separate it and entirely read it, whilst using test pins correctly positioned onto the input/output hubs of the memory.
However, a one chip microprocessor can make it possible to prevent access to confidential and/or secret information if the microprocessor and its memory are combined on a single chip. This advantage results from the physical structure of such a microprocessor, where the input/output hubs of the memory are not visible.
In certain applications, it is important for the microprocessor to be able to remember certain events which have occurred during the performance of a programme. Thus, it is assumed for example that a defrauder wishes to penetrate the secrets of a system. For this purpose, the defrauder will present information intended to get round the safety device of the system. It is then important that the microprocessor is able to record these attempts at fraud and that it reacts so as to prevent the defrauder from succeeding. For this purpose, it is necessary that the microprocessor records in its memory, each attempt at fraud. As soon as a predetermined number of attempts is reached, the microprocessor places itself in the passive state and takes no further account of any new information presented from the outside. Thus, the microprocessor must be able to remember and modify its behaviour of its own accord. This possibility is offered if it is auto-programmable.
Thus, an auto-programmable one chip microprocessor is the only microprocessor which can act and maintain in all security confidential and secret information recorded in a protected area of its memory.
A particular application which has motivated the structure of the microprocessor according to the invention, more particularly applies to public code encoding systems, because at present no one chip microprocessor is in itself able to fulfil in all security all the functions imposed by such encoding systems.